core-types-json-schema
This package provides conversion functions between core-types
and JSON Schema (and Open API through the openapi-json-schema
package).
You probably don't want to use this package directly, but rather typeconv
which uses this package to convert between TypeScript, JSON Schema, GraphQL and Open API.
See
Other conversion packages:
Usage
There are four main conversion functions, convertCoreTypesToJsonSchema
, convertJsonSchemaToCoreTypes
, convertCoreTypesToOpenApi
and convertOpenApiTpCoreTypes
, all returning a wrapped value, of the type ConversionResult
.
This package also re-exports jsonSchemaTypeToOpenApi
and openApiToJsonSchemaType
from openapi-json-schema
.
core-types to JSON Schema
import { convertCoreTypesToJsonSchema } from 'core-types-json-schema'
let doc;
const { data: jsonSchema } = convertCoreTypesToJsonSchema( doc );
You can provide options as a second argument on the type:
interface ConvertCoreTypesToJsonSchemaOptions
{
sourceFilename?: string;
filename?: string;
userPackage?: string;
userPackageUrl?: string;
}
These fields will be used when constructing a comment ($comment
) at the root of the JSON Schema, describing the context of where the schema comes from.
JSON Schema to core-types
import { convertJsonSchemaToCoreTypes } from 'core-types-json-schema'
let jsonSchema;
const { data: doc } = convertJsonSchemaToCoreTypes( jsonSchema );
core-types to Open API
import { convertCoreTypesToOpenApi } from 'core-types-json-schema'
let doc;
const { data: jsonSchema } = convertCoreTypesToOpenApi( doc );
You can provide options as a second argument on the type:
interface CoreTypesToOpenApiOptions extends ConvertCoreTypesToJsonSchemaOptions
{
title: string;
version: string;
schemaVersion?: string;
}
The title
and version
are required for Open API. The schemaVersion
defaults to 3.0.0
.
Open API to core-types
import { convertOpenApiTpCoreTypes } from 'core-types-json-schema'
let openApiSchema;
const { data: doc } = convertOpenApiTpCoreTypes( openApiSchema );